package com.dingyx.ps.util;

import lombok.Getter;

/**
 * 任务状态枚举类型
 */
@Getter
public enum TaskMasterStatusEnum {
    accepting("审核中", 0),
    rejected("已驳回", 1),
    running("进行中", 2),
    toBeChecked("待验收", 3),
    completed("已完成", 4),
    canceled("已作废", 5),
    ;

    // 成员变量
    private String name;
    private Integer index;
    // 构造方法
    TaskMasterStatusEnum(String name, Integer index) {
        this.name = name;
        this.index = index;
    }

    /**
     * 判断当前任务是否可以作废
     * @return
     */
    public static boolean canBeCancel(Integer taskStatus){
        // 只有当前任务是'进行中'状态是，才可以申请验收
        if(running.getIndex().equals(taskStatus) ||
                rejected.getIndex().equals(taskStatus)){
            return true;
        }
        return false;
    }

    /**
     * 判断主任务是否已结束
     * @param taskStatus
     * @return
     */
    public static Boolean isCompleted(Integer taskStatus) {
        // 只有当前任务是'已结束' 或者 '已作废' 才是真正结束状态
        if(completed.getIndex().equals(taskStatus) ||
                canceled.getIndex().equals(taskStatus)){
            return true;
        }
        return false;
    }

    /**
     * 判断当前任务是否可以申请验收
     * @return
     */
    public static boolean canAccept(Integer taskStatus){
        // 只有当前任务是'进行中'或者'被驳回'，才可以申请验收
        if(running.getIndex().equals(taskStatus) ||
                rejected.getIndex().equals(taskStatus)){
            return true;
        }
        return false;
    }
}
